This invention relates in general to methods, data processing system readable storage media, and articles, and more particularly, to methods of filtering motion of a body, data processing system readable media having software code for carrying out those methods, and articles comprising output information related to a body, wherein the output information is generated using those methods.
Computer models of the human body have been used since the early 1970""s to estimate in-vivo quantities, such as muscle forces, which then and now cannot be measured except by invasive means. In the case of muscle forces, the difficulty arises because there are more muscles in the body than degrees of freedom, thus allowing multiple control strategies for a single observed body motion. As a result, an inverse dynamic analysis (i.e., an analysis that solves for the net muscular joint moments given body segmental accelerations derived from experimental measures) leads to an indeterminant set of equations for the muscle forces. Two approaches have been commonly employed to resolve this indeterminacy: static optimization and dynamic optimization.
Static optimization, based on the results of an inverse dynamic analysis, postulates that the net muscular joint moments are distributed across muscles so as to minimize a postulated performance criterion. The static optimization method is computationally feasible, but it has a number of shortcomings. First, in the static optimization technique, all quantities are treated as time independent variables. This assumption can lead to non-physiological predictions of muscle force because the dynamic properties of muscle are not taken into account. Second, the static optimization technique is highly dependent on the accurate collection and processing of kinematic data. The reason is that an inverse dynamic analysis requires twice differentiating displacement data to obtain accelerations, which amplifies any noise present in the displacement data. Third, because an inverse dynamics approach alone is taken, the static optimization process is not capable of generating novel motion.
Dynamic optimization is based on a forward dynamics approach. In a forward dynamics approach, one develops a detailed dynamic model of the musculoskeletal system and uses this model to execute computer-based simulations of movement that are driven by a set of actuator controls (e.g., joint torques, muscle excitation signals, and the like). Like static optimization, dynamic optimization postulates a performance criterion to resolve the indeterminant force distribution problem. However, performance criteria for dynamic optimization are time dependent and their evaluation is accomplished by numerically integrating the equations of motion over the duration of the simulation. As a result, dynamic optimization incurs great computational expense, so much so that relatively few dynamic optimization problems have been solved for complex activities like walking. Only recently, with the advent of parallel supercomputers, has it become feasible to solve large-scale dynamic optimization problems for human movement. Even with the use of parallel supercomputers, solutions can take more than 100 hours for motion that is less than one second in duration.
In the field of computer animation, obtaining realistic, life-like character motion is often an important objective. There are two general methods by which this task is currently approached: 1) motion capture and 2) key-framing. In motion capture, the motion of an actor or apparatus is digitally recorded (e.g., using markers and video cameras). Then, an inverse kinematic problem is often solved to drive a computer model through the same motion. This method has several drawbacks: 1) motion capture data frequently has errors, 2) motion capture sessions are typically limited to a small volume which requires that motion capture sequences be spliced together, and 3) it is sometimes not possible to use motion capture for certain animation sequences (e.g., locomotion of imaginary creatures, violent crashes, or space flight). In key-framing, an animator uses software to compose a series of animation frames, separated in time by some interval, which together comprise an animation sequence. The drawback of this method is that the realism of the sequence depends heavily on the experience and skill of the animator. For complex three-dimensional movements, an animator might be required to manually specify more than 30 variables per key-frame, and it is extraordinarily difficult to capture the subtle nuances exhibited by real-life characters.
Filtering techniques have been devised to reduce error in motion capture data, but these techniques typically omit knowledge of the dynamic properties of the character""s body and of the actuators which drive the body. For example, inverse kinematic techniques have been implemented which can serve to reduce error in motion capture data when the motion of a character is constrained (e.g., a part of the body is known to be in contact with an obstacle or is known to articulate with another part of the body by a particular kind of joint, such as ball-and-socket). These same inverse kinematic techniques can also be used to reduce the burden on the animator when a key-framing methodology is used. However, in many instances an inverse kinematics technique is not sufficient for imbuing character animation with life-like dynamic realism.
Several physics-based animation techniques have been developed. Popovic and Witkin (SIGGRAPH 99, Los Angeles, Aug. 8-13, 1999) used an optimal control (or dynamic optimization) technique for improving the dynamic realism of character movement in computer animations. However, their technique is labor intensive, requires a high-level of skill from the animator, normally requires a simplified dynamic representation of the character, and can be computationally costly. Zordan and Hodgins (Computer Animation and Simulation, 1999) have employed proportional-derivative (xe2x80x9cPDxe2x80x9d) control techniques to introduce dynamic realism into computer animation. While their technique appears to require less labor than that of Popovic and Witkin (1999), it does have several shortcomings. First, being a PD controller, the actuation of their dynamic models is based solely on error between the trajectory of the model and the desired kinematic trajectory, and therefore, has no feed-forward control. Without feed-forward control, non-physiological generalized forces are often demanded to make the dynamic model track the desired trajectories. Second, because this approach does not use optimization when computing controls for the actuators, it cannot be used to reduce an indeterminate control problem to a determinant one and cannot be used to predict unmeasured or unspecified kinematic variables.
Methods can be used to filter the motion of a body so that the motion can be consistent with the laws of classical dynamics. Estimates of the generalized forces (i.e., forces and torques), which give rise to the filtered motion, can also be produced. In one embodiment, given a dynamic model that represents a system of articulated bodies and given a set of tunable filter parameters, an optimization-based inverse dynamics process can be used to compute a set of controls that drive a forward dynamic simulation toward a set of specified kinematic trajectories. To the extent that the actuators of the dynamic model are capable of applying the needed generalized forces, the specified kinematic trajectories can be reproduced. To the extent the actuators are not capable of applying the needed generalized forces, the specified kinematic trajectories can be filtered in a manner consistent with the dynamic properties of the articulated bodies.
The coupling of the optimization-based inverse dynamics algorithm with a forward dynamic simulation process has several benefits compared to prior art. In contrast to static optimization, the methods and system described herein 1) can account for the time dependent properties of the actuators, 2) can be less sensitive to errors in the specified kinematics, 3) and can generate novel motion. In contrast to dynamic optimization (i.e., optimal control methods for solving spacetime constraint problems), at least some of the embodiments of the present invention may require substantially less computation time. In contrast to other physics-based animation techniques, those embodiments may not require simplification of the dynamic model, does not require a high level of expertise from the animator, can reduce indeterminate control problems to determinant ones, and can predict unmeasured or unspecified kinematic variables. In addition, depending on how the filtering problem is phrased, the methods and system can be used to solve the inverse kinematics problem implicitly rather than depending on a prior explicit inverse kinematic solution. The methods and system can be useful in the areas of medicine, ergonomics, computer animation, or any other areas where it is of benefit for the motion of objects, real or imaginary, to follow the laws of classical dynamics.
In one set of embodiments, a method of filtering motion of a body can comprise accessing specified kinematics of the body, a dynamic property of the body, and a state of the body. The method can also comprise determining a control pertaining to an actuation of the body using an optimization-based inverse dynamics algorithm, the specified kinematics, and the dynamic property. The method can further comprise advancing the state in time using a forward dynamic simulator, the control, the dynamic property, and the state.
In another set of embodiments, a data processing system readable medium can have code embodied within it. The code can include instructions executable by a data processing system. The instructions may be configured to cause the data processing system to perform the methods described herein.
In other embodiments, an article can comprise an output information related to a body. More specifically, the article can comprise a data processing system readable medium and a code embodied within the data processing system readable medium. The code may include the output information. The output information may be generated by: accessing specified kinematics of the body, a dynamic property of the body, and a state of the body; determining a control pertaining to an actuation of the body using an optimization-based inverse dynamics algorithm, the specified kinematics, and the dynamic property; and advancing the state in time using a forward dynamic simulator, the control, the dynamic property, and the state.
The foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.